package cn.stylefeng.guns.modular.hx.order.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.modular.hx.basic.model.params.HxBasicGoodsParam;
import cn.stylefeng.guns.modular.hx.order.entity.HxOrderPut;
import cn.stylefeng.guns.modular.hx.order.model.params.HxOrderPutParam;
import cn.stylefeng.guns.modular.hx.order.model.result.HxOrderPutResult;
import cn.stylefeng.guns.modular.order.model.params.OrderPutParam;
import cn.stylefeng.roses.core.reqres.response.ResponseData;

import com.baomidou.mybatisplus.extension.service.IService;

import java.io.IOException;
import java.util.List;

import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 入库订单表 服务类
 * </p>
 *
 * @author zhucx
 * @since 2023-08-05
 */
public interface HxOrderPutService extends IService<HxOrderPut> {

    /**
     * 新增
     *
     * @author zhucx
     * @Date 2023-08-05
     */
    void add(HxOrderPutParam param);

    /**
     * 删除
     *
     * @author zhucx
     * @Date 2023-08-05
     */
    void delete(HxOrderPutParam param);

    /**
     * 更新
     *
     * @author zhucx
     * @Date 2023-08-05
     */
    void update(HxOrderPutParam param);

    /**
     * 查询单条数据，Specification模式
     *
     * @author zhucx
     * @Date 2023-08-05
     */
    HxOrderPutResult findBySpec(HxOrderPutParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author zhucx
     * @Date 2023-08-05
     */
    List<HxOrderPutResult> findListBySpec(HxOrderPutParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author zhucx
     * @Date 2023-08-05
     */
     LayuiPageInfo findPageBySpec(HxOrderPutParam param,String condition,Long operateId);
     
     LayuiPageInfo findqueryPageBySpec(HxOrderPutParam param,String condition,Long operateId);
     
     LayuiPageInfo findreturnPageBySpec(HxOrderPutParam param,String condition,Long operateId);
     
     LayuiPageInfo findreturnQueryPageBySpec(HxOrderPutParam param,String condition,Long operateId);
  	
  	boolean saveBatchList(List<HxOrderPutParam> list);

	boolean checkCustomerOrder(String orderPutNumber);

	HxOrderPut findByThelastone();

	HxOrderPutResult getPrintOrderPut(HxOrderPutParam param);

	ResponseData getExceldata(MultipartFile file, HxOrderPutParam hxOrderPutParam, ResponseData data)throws Exception;

    ResponseData getExceldataKh(MultipartFile file, HxOrderPutParam hxOrderPutParam, ResponseData data)throws Exception;

    /**
	 * 撤回入库订单
	 * @param hxOrderPut
	 * @param data
	 * @return
	 */
	ResponseData revoke(HxOrderPut hxOrderPut, ResponseData data);

    void taskAppointment();

    void taskAppointment1();

    List<HxOrderPutResult> findlistAllBySpec(HxOrderPutParam hxOrderPutParam, String condition,Long operateId);

    HxOrderPutResult count(HxOrderPutParam hxOrderPutParam, String condition, Long operateId);

    HxOrderPutResult count1(HxOrderPutParam hxOrderPutParam, String condition, Long operateId);

    HxOrderPutResult count2(HxOrderPutParam hxOrderPutParam, String condition, Long operateId);

    List<HxOrderPutResult> listAll1(HxOrderPutParam hxOrderPutParam, String condition, Long operateId);

    List<HxOrderPutResult> list1(HxOrderPutParam hxOrderPutParam, String condition, Long operateId);

    List<HxOrderPutResult> List2(HxOrderPutParam hxOrderPutParam, String condition, Long operateId);
}
